Saving content for viewing on a virtual reality rendering device

ABSTRACT

Systems and methods for rendering VR content at a VR rendering device include identifying, by a content facilitator, that that first content presented via a first device to a user includes metadata indicating availability of second content. The second content includes at least one of a three-dimensional (3D) video, 360° image, or virtual reality (VR) content. The content facilitator provides an interface element to the user at the first device responsive to the metadata indicating availability of the second content. The content facilitator receives a user selection of the interface element. The content facilitator provides access to the second content via a VR rendering device for the user responsive to the user selection. The VR rendering device is configured to render the second content.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of priority under 35 U.S.C. § 120 asa continuation of U.S. Non-Provisional application Ser. No. 16/597,543,filed on Oct. 9, 2019, the disclosure of which is incorporated herein byreference in its entirety.

FIELD OF DISCLOSURE

The present disclosure is generally related to saving virtual reality(VR) content for viewing, including but not limited to conveying VRcontent to a VR rendering device.

BACKGROUND

Artificial reality, such as a virtual reality (VR), an augmented reality(AR), or a mixed reality (MR), provides immersive experience to a user.In one example, a user wearing a head mounted display (HMD) can rotatethe user's head, and an image of a virtual object corresponding to alocation of the HMD and a gaze direction of the user can be displayed onthe HMD to allow the user to feel as if the user is moving within aspace of an artificial reality (e.g., a VR space, an AR space, or a MRspace).

Artificial reality content may be available to users through variouschannels. Some users may run into such content at a time in which theuser is not in possession of their HMD. Therefore, such users may not becapable of experiencing or interacting with the artificial realitycontent at that time.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are not intended to be drawn to scale. Likereference numbers and designations in the various drawings indicate likeelements. For purposes of clarity, not every component can be labeled inevery drawing.

FIG. 1 is a diagram of a system for rendering content on a VirtualReality (VR) rendering device, according to an example implementation ofthe present disclosure.

FIG. 2 is an example user interface for rendering content at a clientdevice, according to an example implementation of the presentdisclosure.

FIG. 3 is a block diagram of a VR rendering device, according to anillustrative embodiment.

FIG. 4 is a flow chart illustrating a process of rendering content on aVR rendering device, according to an example implementation of thepresent disclosure.

FIG. 5 is a block diagram of a computing environment according to anexample implementation of the present disclosure.

DETAILED DESCRIPTION

Before turning to the figures, which illustrate certain embodiments indetail, it should be understood that the present disclosure is notlimited to the details or methodology set forth in the description orillustrated in the figures. It should also be understood that theterminology used herein is for the purpose of description only andshould not be regarded as limiting.

Disclosed herein are systems and methods for saving virtual reality (VR)content (e.g., three-dimensional (3D) videos, 360° images, artificialreality (AR) content, or other VR content) for rendering at a VRrendering device. In one aspect, a content facilitator identifies thatfirst content (e.g., a social media post, for instance) presented via afirst device to a user includes metadata indicating availability ofsecond content (e.g., content embedded, incorporated into, linked to orotherwise associated with the first content). The second content mayinclude a three-dimensional (3D) video, 360° image, or virtual reality(VR) content. The content facilitator may provide an interface element(e.g., a button, drop-down menu option, etc.) to the user at the firstdevice responsive to the metadata indicating availability of the secondcontent. The content facilitator may receive a user selection of theinterface element. The content facilitator may provide access to thesecond content via a VR rendering device (e.g., a HMD) for the userresponsive to the user selection. The VR rendering device may beconfigured to render the second content. By providing the interfaceelement to the user, the systems and methods described herein mayprovide a quick and convenient way in which VR content may be saved andsubsequently retrieved by the user. A user need not possess their VRrendering device at all times to view VR content. Rather, the user maybe selectively presented the interface element (e.g., when VR content isavailable to the user), and can select the interface element at thefirst device so that the VR rendering device may access the VR content.

FIG. 1 is a block diagram of a system 100 for rendering content on avirtual reality (VR) rendering device, according to an illustrativeembodiment. The system 100 includes a client device 102 configured toaccess a content provider 104, a VR rendering device 106, and a server108. The server 108 may host a content facilitator 110. As described ingreater detail below, the content facilitator 110 may be configured toidentify that first content 112 presented via the client device 102 to auser indicates availability of VR content 114. The content facilitator110 is configured to provide an interface element 116 to the user at theclient device 102. When the user selects the interface element 116, thecontent facilitator 108 provides access to the VR content 114 via the VRrendering device 106.

Various components and elements of the system 100 may be implemented onor using components or elements of the computing environment shown inFIG. 5 and subsequently described. Furthermore, various components ofthe system 100 may be modified or embodied on different components. Forinstance, the content provider 104 may be embodied on a server, whichmay be the same as server 108, or a different server. Similarly, thecontent facilitator 110 may be embodied on the client device 102 or theVR rendering device 106. Accordingly, the present disclosure is notlimited to the particular arrangements shown in FIG. 1.

The system 100 includes a client device 102. The client device 102 maybe communicably coupled to the content provider 104 and server 108. Insome implementations, the client device 102 is a mobile device (e.g., asmartphone, tablet, wearable device, etc.), a computer (e.g., a desktopor laptop computer), and so forth. The client device 102 may beassociated with or operated by a user. The user may access variousinternet-based content via the client device 102. The user may accesscontent hosted or otherwise associated with the content provider 104.The content provider 104 may be or include any device, component, orsystem designed or implemented to host and/or provision content whichmay be accessed by a user. The content provider 104 may be hosted on aserver. In some implementations, the content provider 104 may be acomponent or feature of a software application, webpage or website,social media channel, and so forth which is accessible by users on theirclient device 102. Users may contribute, transmit, upload, send, orotherwise provide content from their client device 102 to the contentprovider 104 (e.g., via the software application, webpage or website,social media channel, etc.). Such content may be accessible by otherusers on their respective client device 102.

The system 100 includes a content facilitator 110 in some embodiments.In some implementations, the content facilitator 110 may be hosted on aserver 108. In some implementations, the content facilitator 110 may behosted on the client device 102 and/or the VR rendering device 106. Asdescribed in greater detail below, the content facilitator 110 may beconfigured to identify content 112 presented on the client device 102 tothe user. The content facilitator 110 may be configured to selectivelyprovide an interface element 116 to the user such that the user isprovided with corresponding content 114 on the user's VR renderingdevice 106 (e.g., upon or responsive to selection of the interfaceelement 116 by the user).

In some implementations, the client device 102 may be configured toaccess content 112 from a plurality of content providers 104. The clientdevice 102 may be configured to access some content 112 via anapplication programming interface (API) or software development kit(SDK) or other plug-in type software available from, installed with orassociated with the content providers 104. The client device 102 isconfigured to render content 112 to the user. The content 112 mayinclude, for instance, text, images, videos, etc. In someimplementations, the content 112 may be associated with additionalcontent 114. The content 114 may be embedded or incorporated within,linked to, or otherwise associated with the content 112. In someinstances, the content 114 may include VR content, such asthree-dimensional (3D) videos, 360° images, augmented reality (AR)content, etc. In some embodiments, the VR content may include a link toview the VR content. In some embodiments, the VR content may include aninvitation to view the VR content (e.g., at a set or scheduled time ordate). In these and other embodiments, the content 114 may include orotherwise be associated with VR content. The content 112, 114 may beretrieved by the client device 102 from the content provider 104 (e.g.,upon or responsive to selecting or launching a widget associated with asoftware application, accessing webpage or website, accessing a socialmedia channel, etc.). The content 112 may be rendered at the clientdevice 102 via a user interface 118 associated with the content provider104. In some instances, the client device 102 may be configured torender some of the content received from the content provider 104. Forinstance, the client device 102 may be configured to rendertwo-dimensional (2D) content 112, but not VR content 114. In someinstances, the client device 102 may be configured to render the VRcontent 114 in a non-immersive manner.

Referring now to FIG. 1 and FIG. 2, the client device 102 may beconfigured to receive content from the content provider 104. FIG. 2shows an example user interface 200 for rendering content at the clientdevice 102, according to an illustrative embodiment. In some instances,the content may be from a plurality of different content providers 104.Some content may include further content which is associated therewith(also referred to herein as associated content). For instance, as shownin FIG. 2, the first content 112 and third content 202 may includeassociated content 114, 204. On the other hand, some content (such asthe second content 206) may not include associated content. Theassociated content may include VR content (e.g., such as the VR content114 associated with first content 112), or non-VR content (e.g., such asthe non-VR content 204 associated with the third content 202).

The content provider(s) 104 may send, transmit, or otherwise provide thecontent to the client device 102 (e.g., via suitable wireless and/orwired connections). The content provider 104 may be configured toinclude or provide metadata with the content. For instance, the metadatafor the content 112, 202 from the content provider 104 may indicate thatthe associated content 114, 204 is available to the user. The metadatamay indicate a creation date (e.g., a date upon which the content wasgenerated), a submission or upload date (e.g., a date upon which thecontent was uploaded to the content provider 104), a source, creator orgenerator of the content, a type of the content (e.g., non-VR content,VR content), a classification or genre of the content, etc.

The content facilitator 110 may be configured to detect, determine, orotherwise identify the content which is provided via the client device102 to the user. In implementations in which the content facilitator 110is installed, hosted or embodied on a server 108, the content may betransmitted from the content provider(s) 104, through the contentfacilitator 110 (e.g., via an API for the content provider(s) 104), tothe client device 102. In implementations in which the contentfacilitator 110 is installed, hosted or embodied on the client device102, the content facilitator 110 may receive the content 112 from thecontent provider 104 for rendering at the client device 102.

The content facilitator 110 may be configured to identify, classify orrecognize the content received from the content provider 104 forrendering at the client device 102 to the user. The content facilitator112 may be configured to parse the metadata received from the contentprovider 104 and associated with the content. The content facilitator110 may be configured to identify (e.g., based on the parsed metadata)that the content indicates availability of associated content (e.g. VRcontent). Continuing the example shown in FIG. 2, the contentfacilitator 110 may be configured to identify the associated content114, 204 for the content 112, 202. The content facilitator 110 may beconfigured to parse metadata for the content 114, 204 associated withcontent 112, 202. The content facilitator 110 may parse the metadata forthe content 114, 204 to determine a type of the content 114, 204. Thecontent facilitator 110 may be configured to determine that the content114 is VR content (e.g., 3D video, 360° image, or other immersivecontent) based on the metadata for the content 114. The contentfacilitator 110 may be configured to determine that the content 114 isVR content based on, for instance, a file extension for the content 114.On the other hand, the content facilitator 110 may be configured to thedetermine that the content 204 is non-VR content (e.g., text, a 2D imageor video, etc.) based on the metadata for the content 114.

The content facilitator 110 may be configured to selectively provide aninterface element 116 to the user at the client device 102. Theinterface element 116 may include an interface or interactive elementsuch as a button or widget included on the user interface 200, adrop-down option for the user interface 200, etc. In someimplementations, the interface element 116 may be provided as a button,widget, drop-down option, etc., for individual content items. Thecontent facilitator 110 may be configured to provide the interfaceelement 116 to the user based on whether content includes associated VRcontent. As shown in FIG. 2, the content facilitator 110 may beconfigured to provide the interface element 116 for the first content112, as the first content 112 includes VR content 114 associatedtherewith. On the other hand, the content facilitator 110 may beconfigured to withhold the interface element 116 for the second andthird content 206, 202, as the second content 206 does not include anyassociated content, and the third content 202 includes non-VR content204 associated therewith.

The interface element 116 may be rendered to the user at the clientdevice 102. The interface element 116 may be selectable by a user of theclient device 102. The interface element 116 may trigger access to theassociated content 114 at the VR rendering device 106. The interfaceelement 116 may include text (e.g., embedded within the interfaceelement 116, located around the interface element 116, or otherwiselabel the interface element) which indicates that the interface element116 triggers access to the associated content 114 at the VR renderingdevice 106. For example, the text may state “Render at the VR renderingdevice”, “Save to VR”, or similar text.

The content facilitator 110 may be configured to determine, detect,identify, or otherwise receive a user selection of the interface element116. The content facilitator 110 may be configured to receive the userselection from the client device 102. The client device 102 mayregister, identify, or otherwise detect the user selection of theinterface element 116 at the user interface 200. The client device 102may be configured to transmit, send, or otherwise provide datacorresponding to the user selection to the content facilitator 110. Thedata may indicate selection of the interface element 116. The data mayindicate or identify the VR content 114 corresponding to the interfaceelement 116 which was selected by the user. The content facilitator 110may be configured to identify the user selection, and the VR content 114associated with the interface element 116 selected by the user.

Referring now to FIG. 1 and FIG. 3, the system 100 is shown to include aVR rendering device 106. Specifically, FIG. 3 depicts a block diagram ofa VR rendering device 106, according to an illustrative embodiment. TheVR rendering device 106 may include or correspond to any device orcomponent designed or implemented to render VR content. The VR renderingdevice 106 may be configured to render a user interface 300 on a display302 of the VR rendering device 106. The display 300 may be mounted to awearable head unit such that, when the wearable head unit is positionedon the user's head, the display faces the user's eyes. The VR renderingdevice 106 may include an input device 302. The input device 302 may becommunicably coupled (e.g., through suitable wired or wireless coupling)to the display such that a user can provide inputs to the VR renderingdevice 106. Such inputs can include, for instance, selection of VRcontent items 304 for rendering corresponding VR content at the VRrendering device 106. The VR rendering device 106 may render one or moreimages, video, audio, or some combination thereof to provide an AR/VR/MRexperience to the user. In some embodiments, audio is presented via anexternal device (e.g., speakers and/or headphones) that receives audioinformation from the VR rendering device 106 or other devices, andpresents audio based on the audio information. In some embodiments, theVR rendering device 106 includes sensors, eye trackers, a communicationinterface, an adaptive image renderer, an electronic display 300, alens, and a compensator. Generally speaking, these components mayoperate together to detect a location of the VR rendering device 106 anda gaze direction of the user wearing the VR rendering device 106, andrender an image of a view within the artificial reality corresponding tothe detected location of the VR rendering device 106 and the gazedirection of the user.

Referring back to FIG. 1, the content facilitator 110 may be configuredto provide access to the VR content 114 via the VR rendering device 106(such that the VR rendering device 106 can render the VR content 114 tothe user). The content facilitator 110 may be configured to provideaccess to the VR content 114 responsive to receiving the selection ofthe interface element 116. As described in greater detail below, thecontent facilitator 110 may be configured to provide access to the VRcontent 114 by linking the VR content 114 to a content library 118associated with the user, by storing the VR content 114 to the contentlibrary 118, causing the client device 102 to stream or download the VRcontent 114 to the VR rendering device 106, and so forth.

The content facilitator 110 may be configured to determine whether auser of the client device 102 has an account associated with the VRrendering device 106. The content facilitator 110 may be configured todetermine whether the user has an account (e.g., VR account, socialmedia account, content account or any such accounts linked together)based on data received from the client device 102 (e.g., duringenrollment or registration of the client device 102 with the contentfacilitator 110). The user may be prompted (e.g., during enrollment orregistration) to provide log-in credentials (e.g., for the account). Theaccount may be an account associated with the VR rendering device 106, asocial media account, an email account, etc. The content facilitator 110may be configured to receive the data from the client device 102, andidentify the data corresponding to the account for the user. The contentfacilitator 110 may be configured to use the account for the user forstoring, linking, or otherwise associating VR content with a contentlibrary 118 and/or a VR rendering device associated with the user.

The system 100 is shown to include a content library 118. The contentlibrary 118 may include a database, data structure, or other type orform of digital library designed or implemented to store datacorresponding to content for a user. While shown as embodied on theserver 108 (e.g., a cloud-based content library 118), in someimplementations, the content library 118 may be stored locally (e.g., onthe VR rendering device 106 and/or on the client device 102). In someinstances, the content library 118 may include a database or ledgerwhich includes links to VR content (such as VR content 114) and anidentifier associated with a user (e.g., an IP address of the clientdevice 102, a username for a social media account of the user, a name ofthe user, or other type of information uniquely associated with theuser). In some instances, the content library 118 may include a datastructure configured to store VR content in association with anidentifier associated with a user. In these and other embodiments, thecontent library 118 is generally configured to include datacorresponding to VR content which is associated with a user. When theuser selects the interface element 116 for VR content (such as VRcontent 114), the content facilitator 110 may be configured to store,include, link, or otherwise associate the VR content to the contentlibrary 118.

The VR rendering device 106 may be configured to access the contentlibrary 118 to retrieve the VR content 114 associated with the user forrendering the VR content 114 to the user. The VR rendering device 106may be linked to an account of the user (e.g., an account associatedwith the VR rendering device 106, a social media account, etc.).Similarly, data from the content library 118 may be linked to theaccount of the user. As such, the VR rendering device 106 may beconfigured to retrieve or otherwise access data from the content library118 using information corresponding to the account of the user. The VRrendering device 106 may be configured to perform a look-up functionusing data corresponding to the user (e.g., account data, an identifierof the VR rendering device 106, an identifier of the client device 102,etc.) in the content library 118 for retrieving data corresponding tothe VR content associated with the user. As further VR content is storedor linked to the content library 118 for the user, the VR renderingdevice 106 may be configured to access the content library 118 forretrieving such VR content.

The VR rendering device 106 may be configured to render the VR contentto the user. As shown in FIG. 3, the VR rendering device 106 may beconfigured to provide a plurality of VR content items 306A-306C to theuser (e.g., on the user interface 300 for the VR rendering device 106).The VR content items 306A-306C may be associated with VR content in thecontent library 118 for the user. The VR content items 306A-306C mayinclude text within a list of VR content items associated with VRcontent, thumbnails corresponding to portions of the VR content, etc.The VR rendering device 106 may be configured to sort the VR contentitems 306A-306C (e.g., based on date in which the user interface element116 associated with the corresponding VR content item in the contentlibrary 118 was selected by the user, based on creation date of the VRcontent, based on category or genre of the VR content item, etc.). Theuser may position the VR rendering device 106 on the user's head andselect (e.g., using the input device 304) the VR content item 306 forrendering the corresponding VR content at the VR rendering device 106.The VR rendering device 106 may access the content library 118 forretrieving or otherwise rendering the selected VR content to the user(e.g., on the display 302). The VR rendering device 106 may access thelink for the VR content in the content library 118 and retrieve the VRcontent from the server corresponding to the link, download the VRcontent stored in the content library 114, stream the VR content fromthe content library 114 to the VR rendering device 106, etc.

In some implementations, the VR rendering device 106 is configured todetermine a time difference between a first time associated with theuser selection (of the interface element 116) and a second timeassociated with usage of the VR rendering device 106. The VR renderingdevice 106 may be configured to identify a time of the selection of theinterface element 116 (e.g., based on data received from the clientdevice 102 directly or through the content facilitator 110). The VRrendering device 106 may be configured to detect usage of the VRrendering device 106 (e.g., by detecting a wake-up or event registeredat the VR rendering device 106, by detecting user inputs on the inputdevice 304 of the VR rendering device 106, etc.). The VR renderingdevice 106 may be configured to determine a time of detected usage ofthe VR rendering device 106 (e.g., based on a timestamp associated withthe usage of the VR rendering device 106). The VR rendering device 106may be configured to compute a time difference using the time of theuser selection and the timestamp. The VR rendering device 106 may beconfigured to render VR content responsive to the time differencesatisfying a temporal threshold. The temporal threshold may be aduration of time between, for instance, selection of the interfaceelement 116 and placing the VR rendering device 106 on the user's head.The time difference may satisfy the temporal threshold when the timedifference is less than (or equal to) the temporal threshold. Bycomparing the time difference to the temporal threshold andautomatically rendering the VR content, the systems and methodsdescribed herein may infer that the user intends or is interested toview the VR content based on the user selecting the interface element116 and using the VR rendering device 106 in a relatively short orreasonable amount of time.

In some implementations, the VR rendering device 106 may be configuredto automatically render the VR content associated with a content item306 based on a period of user inactivity. The VR rendering device 106may render the user interface 300 including a first VR content item306A. The first VR content item 306A may be the VR content item 306associated with the most recently selected interface element 116 for VRcontent. The VR rendering device 106 may select the first VR contentitem 306A as a default VR content item 306A for selection by the user.The VR rendering device 106 may be configured to detect user inactivity(e.g., based on the user not operating the input device 304 to selectthe VR content item 306A or to select a different VR content item 306B,306C). The VR rendering device 106 may be configured to automaticallyrender the VR content associated with the first VR content item 306Abased on the user inactivity (e.g., indicating indifference to orapproval of the default VR content item 306A).

In some implementations, the VR rendering device 106 may be configuredto receive VR content directly from the client device 102 (e.g.,responsive to selecting the interface element 116). In other words, theclient device 102 may be configured to stream the VR content to the VRrendering device 106 for rendering. For instance, the VR renderingdevice 106 and client device 102 may be wirelessly coupled to oneanother (e.g., via a Bluetooth or Wi-Fi connection or pairing). Theclient device 102 may communicate the VR content to the VR renderingdevice 106 without saving or storage to the content library 118. In thisregard, the VR content may be temporarily shared to the VR renderingdevice 106.

Referring now to FIG. 4, depicted is a flowchart showing a process 400of rendering content on a VR rendering device, according to anillustrative embodiment. The steps of the method 400 may be implementedby the components and elements described above with reference to FIG.1-FIG. 3, such as the client device 102, content provider 104, VRrendering device 106, and/or server 108. In brief overview, at step 402,a content facilitator identifies availability of VR content. At step404, the content facilitator provides an interface element. At step 406,the content facilitator receives a user selection. At step 408, thecontent facilitator provides access to the VR content.

At step 402, a content facilitator identifies availability of VRcontent. In some embodiments, the content facilitator may identify thatfirst content presented via a first device (e.g., client device) to auser includes metadata indicating availability and/or the type of secondcontent (e.g., VR content). The VR content may include athree-dimensional (3D) video, 360° image, or other VR content. The usermay access the first content on the first device through a social mediachannel, software application (e.g., on the client device), a webpage orwebsite, etc. The user may have an account with a content providerassociated with the social media channel, software application, webpage,etc. The account may be, for instance, a social media account. The usermay provide account information to the client device (e.g., duringenrollment or registration of the client device, during log-in, etc.).The client device may provide account information to the contentfacilitator.

The user may access the first content following selection of a widget orbutton on the client device associated with the content provider, bylaunching an internet browser and accessing a website for the webpageassociated with the content provider, etc. The client device may requestcontent from the content provider using the account informationassociated with the user of the client device. The content provider mayroute, transmit, send, or otherwise provide the content to the clientdevice. In implementations in which the content facilitator is embodiedon the client device, the content may be provided from the contentprovider directly to the client device and received by the contentfacilitator. In implementations in which the content facilitator islocated separate from the client device (e.g., embodied on a server),the content provider may provide content to the client device throughthe content facilitator.

The content may include a social media post having content associatedtherewith. The associated content may include VR content, as describedabove. The VR content may be embedded or incorporated within the socialmedia post, linked to the social media post, etc. The contentfacilitator may parse the content to identify that VR content isassociated therewith. The content facilitator may identify the VRcontent is available to the user based on metadata for the social mediapost. The metadata may indicate that content is associated with thesocial media post, and may indicate a type of the associated content(e.g., by including a file extension of the associated content, byincluding a classification of the associated content, etc.). The contentfacilitator may parse the metadata to determine that the associatedcontent is VR content.

At step 404, the content facilitator provides an interface element. Insome embodiments, the content facilitator provides the interface elementto the user at the client device responsive to the metadata indicatingavailability of the VR content. The content facilitator may provide theinterface element in association with the content corresponding to theVR content. For instance, where the content is a social media post andthe VR content is embedded within the social media post, the contentfacilitator may provide the interface element for the social media post.The content facilitator may selectively provide the interface element.The content facilitator may provide the interface element where metadatafor content indicates availability of VR content, and refrain fromproviding the interface element where metadata for content does notindicate availability of VR content (e.g., that the content does notinclude any associated content, or the associated content is non-VRcontent). The interface element may be provided as a button for thecontent, a drop-down option for a drop-down menu for the content, etc.The interface element may indicate the availability of providing accessto the associated VR content to a VR rendering device of the user. TheVR rendering device may be linked to or communicatively coupled to theclient device of the user. The VR rendering device may be linked by theuser logging into a common account for the client device and VRrendering device, registering an account with the VR rendering device,by the client device and VR rendering device sharing a common networkconnection, by the client device and VR rendering device being paired,etc.

At step 406, the content facilitator receives a user selection. In someembodiments, the content facilitator receives a user selection of theinterface element. The user may provide the user selection of theinterface element on the client device. The content facilitator mayreceive the user selection from the client device. In some embodiments,the content facilitator may receive data corresponding to the userselection. The data may include an event indicating the user selection(e.g., a user selection event), an indication identifying the content(or associated VR content), a timestamp of the user selection, etc. Thecontent facilitator may identify receive the data corresponding to theuser selection. The content facilitator may parse the data to determinethat the user selected the interface element. The content facilitatormay parse the data to identify the VR content associated with the userselection.

At step 408, the content facilitator provides access to the VR content.In some embodiments, the content facilitator provides access to the VRcontent via a VR rendering device. The content facilitator may provideaccess to the VR content responsive to the user selection. The VRrendering device may be configured to render the VR content. The contentfacilitator may provide access to the VR content identified ascorresponding to the user selection. The VR rendering device may receivethe VR content (e.g., from a content library, from a content providerusing a link from the content library, from the client device, etc.).The VR rendering device may render the VR content to the user. Asdescribed in greater detail below, in some instances, the VR renderingdevice may automatically render the VR content, may render the VRcontent responsive to a user selection of the VR content, etc.

In some embodiments, the content facilitator may determine that the userhas an account for the VR rendering device. The content facilitator mayprovide access to the VR content via the user's account for the VRrendering device. The content facilitator may determine the user has anaccount for the VR rendering device using data from the client device.The data may be the log-in credentials, metadata, data received duringenrollment or registration of the client device with the contentfacilitator, identifying information corresponding to the client device(e.g., an IP address for the client device), identifying informationcorresponding to the user (e.g., an email address, username, pin, etc.).The content facilitator may cross-reference the data from the clientdevice with data corresponding to account holders for respective VRrendering devices. The content facilitator may determine that the userhas an account with a VR rendering device based on such analysis.

The content facilitator may provide access to the VR content via theuser's account for the VR rendering device by linking, storing, orotherwise associating the VR content with a content library for theuser's account. In some embodiments, the content facilitator may provideaccess to the VR content by causing establishment of a link between acontent library of the user and the VR content. The link may be anaddress to a server which hosts the VR content. The content facilitatormay store the link (e.g., rather than the VR content) on the contentlibrary. The VR rendering device may access the content library (e.g.,using the account information for the user), and access the serverhosting the VR content using the link in the content library. In someembodiments, the content facilitator may provide access to the VRcontent by causing the VR content to be stored in the content library ofthe user. In this regard, the content library may store the VR contentlocally, rather than storing links to the VR content. Suchimplementations may be more costly from a storage perspective, but moreefficient from a content delivery standpoint (particularly where thecontent library is local to the VR rendering device). The VR renderingdevice may access the VR content by retrieving the VR content directlyfrom the content library.

In some embodiments, the content facilitator may provide access to theVR content by wirelessly streaming the VR content from the first deviceto the VR rendering device. The VR rendering device and client devicemay be communicably coupled to one another (e.g., wirelessly or througha wired connection). The VR rendering device and client device may becommunicably coupled to one another by being connected to a commonnetwork (e.g., Wi-Fi or other similar network), by being paired with oneanother (e.g., via Bluetooth or other type or form of pairing), etc. Theclient device may transmit the VR content to the VR rendering device viasuch suitable coupling. The client device may transmit the VR content tothe VR rendering device without any storage of the VR content on thecontent library. As such, the VR content may be temporarily shared withthe VR rendering device.

In some embodiments, the VR rendering device may present a plurality ofcontent items via a user interface of the VR rendering device. The VRrendering device may present a content item for the VR content (e.g.,identified at step 402). The content items may include a list of VRcontent associated with the user, a plurality of thumbnails for the VRcontent, etc. The VR rendering device may sort the content itemsprovided to the users. The VR rendering device may sort the contentitems based on the corresponding VR content. The VR rendering device maysort the content items by date/time of user selection of the interfaceelement, by creation date of the VR content, by category or genre of theVR content, by creator of the VR content, etc. Such data may be includedin the metadata used and described above at step 402. The VR renderingdevice may receive a selection of one of the content items (e.g., via aninput device for the VR rendering device operated or otherwisecontrolled by the user). The VR rendering device may render the VRcontent corresponding to the selected content item (e.g., by retrievingthe VR content from the content library, retrieving or requesting the VRcontent from the client device, etc.).

In some embodiments, the VR rendering device may render VR content basedon a period of user inactivity (e.g., user inaction). The VR renderingdevice may render VR content corresponding to a default VR content item.The default VR content item may be the content item corresponding to themost recent user selection of an interface element for VR content. Inthis regard, the VR rendering device may default to rendering the VRcontent to which the user was most recently provided access. The VRrendering device may detect user inactivity (e.g., by not receiving anyuser inputs from the input device for selecting the default VR contentitem or selecting a different VR content item). The VR rendering devicemay determine that the user intends to view VR content for the defaultVR content item based on the user not selecting alternative VR content.The VR rendering device may render the VR content when the user does notselect any alternative VR content (or provide any other inputs) for aperiod of time (e.g., a period of inactivity or inaction).

In some embodiments, the VR rendering device may determine a timedifference between a first time associated with the user selection and asecond time associated with usage of the VR rendering device. The VRrendering device may render the content responsive to the timedifference satisfying a temporal threshold. The VR rendering device maydetermine the first time based on the data corresponding to the receiveduser selection (e.g., the timestamp of the user selection). The VRrendering device may determine the second time based on datacorresponding to usage of the VR rendering device. The data may includedetected events (e.g., an event when the user places the VR renderingdevice on the user's head, an event when the user selects a button onthe VR rendering device to wake up or turn on the VR rendering device,user inputs from the input device associated with the VR renderingdevice, etc.). Each of these events may include correspondingtimestamps. The VR rendering device may determine the time difference bycomputing a difference between the corresponding timestamps. The VRrendering device may compare the time difference to a temporalthreshold. The temporal threshold may be a threshold of time whichindicates the user intends to view content which was recently selected.The temporal threshold may be satisfied where the determined timedifference is less than (or equal to) the temporal threshold. The VRrendering device may automatically render the VR content to the userwhen the determined time difference satisfies the temporal threshold.Such implementations may be more user-friendly by automaticallyrendering the VR content to the user when it is likely that the userintends to view the VR content (e.g., by selecting the interface elementand using the VR rendering device in a relatively short amount of time).

Various operations described herein can be implemented on computersystems. FIG. 5 shows a block diagram of a representative computingsystem 514 usable to implement the present disclosure. In someembodiments, the client device 102, VR rendering device 106, or both ofFIG. 1 are implemented by the computing system 514. Computing system 514can be implemented, for example, as a consumer device such as asmartphone, other mobile phone, tablet computer, wearable computingdevice (e.g., smart watch, eyeglasses, head mounted display), desktopcomputer, laptop computer, or implemented with distributed computingdevices. The computing system 514 can be implemented to provide VR, AR,MR experience. In some embodiments, the computing system 514 can includeconventional computer components such as processors 516, storage device518, network interface 520, user input device 522, and user outputdevice 524.

Network interface 520 can provide a connection to a wide area network(e.g., the Internet) to which WAN interface of a remote server system isalso connected. Network interface 520 can include a wired interface(e.g., Ethernet) and/or a wireless interface implementing various RFdata communication standards such as Wi-Fi, Bluetooth, or cellular datanetwork standards (e.g., 3G, 4G, 5G, 60 GHz, LTE, etc.).

User input device 522 can include any device (or devices) via which auser can provide signals to computing system 514; computing system 514can interpret the signals as indicative of particular user requests orinformation. User input device 522 can include any or all of a keyboard,touch pad, touch screen, mouse or other pointing device, scroll wheel,click wheel, dial, button, switch, keypad, microphone, sensors (e.g., amotion sensor, an eye tracking sensor, etc.), and so on.

User output device 524 can include any device via which computing system514 can provide information to a user. For example, user output device524 can include a display to display images generated by or delivered tocomputing system 514. The display can incorporate various imagegeneration technologies, e.g., a liquid crystal display (LCD),light-emitting diode (LED) including organic light-emitting diodes(OLED), projection system, cathode ray tube (CRT), or the like, togetherwith supporting electronics (e.g., digital-to-analog oranalog-to-digital converters, signal processors, or the like). A devicesuch as a touchscreen that function as both input and output device canbe used. Output devices 524 can be provided in addition to or instead ofa display. Examples include indicator lights, speakers, tactile“display” devices, printers, and so on.

Some implementations include electronic components, such asmicroprocessors, storage and memory that store computer programinstructions in a computer readable storage medium. Many of the featuresdescribed in this specification can be implemented as processes that arespecified as a set of program instructions encoded on a computerreadable storage medium. When these program instructions are executed byone or more processors, they cause the processors to perform variousoperation indicated in the program instructions. Examples of programinstructions or computer code include machine code, such as is producedby a compiler, and files including higher-level code that are executedby a computer, an electronic component, or a microprocessor using aninterpreter. Through suitable programming, processor 516 can providevarious functionality for computing system 514, including any of thefunctionality described herein as being performed by a server or client,or other functionality associated with message management services.

It will be appreciated that computing system 514 is illustrative andthat variations and modifications are possible. Computer systems used inconnection with the present disclosure can have other capabilities notspecifically described here. Further, while computing system 514 isdescribed with reference to particular blocks, it is to be understoodthat these blocks are defined for convenience of description and are notintended to imply a particular physical arrangement of component parts.For instance, different blocks can be located in the same facility, inthe same server rack, or on the same motherboard. Further, the blocksneed not correspond to physically distinct components. Blocks can beconfigured to perform various operations, e.g., by programming aprocessor or providing appropriate control circuitry, and various blocksmight or might not be reconfigurable depending on how the initialconfiguration is obtained. Implementations of the present disclosure canbe realized in a variety of apparatus including electronic devicesimplemented using any combination of circuitry and software.

Having now described some illustrative implementations, it is apparentthat the foregoing is illustrative and not limiting, having beenpresented by way of example. In particular, although many of theexamples presented herein involve specific combinations of method actsor system elements, those acts and those elements can be combined inother ways to accomplish the same objectives. Acts, elements andfeatures discussed in connection with one implementation are notintended to be excluded from a similar role in other implementations orimplementations.

The hardware and data processing components used to implement thevarious processes, operations, illustrative logics, logical blocks,modules and circuits described in connection with the embodimentsdisclosed herein may be implemented or performed with a general purposesingle- or multi-chip processor, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA), or other programmable logic device, discrete gate ortransistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. A generalpurpose processor may be a microprocessor, or, any conventionalprocessor, controller, microcontroller, or state machine. A processoralso may be implemented as a combination of computing devices, such as acombination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration. In some embodiments, particularprocesses and methods may be performed by circuitry that is specific toa given function. The memory (e.g., memory, memory unit, storage device,etc.) may include one or more devices (e.g., RAM, ROM, Flash memory,hard disk storage, etc.) for storing data and/or computer code forcompleting or facilitating the various processes, layers and modulesdescribed in the present disclosure. The memory may be or includevolatile memory or non-volatile memory, and may include databasecomponents, object code components, script components, or any other typeof information structure for supporting the various activities andinformation structures described in the present disclosure. According toan exemplary embodiment, the memory is communicably connected to theprocessor via a processing circuit and includes computer code forexecuting (e.g., by the processing circuit and/or the processor) the oneor more processes described herein.

The present disclosure contemplates methods, systems and programproducts on any machine-readable media for accomplishing variousoperations. The embodiments of the present disclosure may be implementedusing existing computer processors, or by a special purpose computerprocessor for an appropriate system, incorporated for this or anotherpurpose, or by a hardwired system. Embodiments within the scope of thepresent disclosure include program products comprising machine-readablemedia for carrying or having machine-executable instructions or datastructures stored thereon. Such machine-readable media can be anyavailable media that can be accessed by a general purpose or specialpurpose computer or other machine with a processor. By way of example,such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, orother optical disk storage, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to carry or storedesired program code in the form of machine-executable instructions ordata structures and which can be accessed by a general purpose orspecial purpose computer or other machine with a processor. Combinationsof the above are also included within the scope of machine-readablemedia. Machine-executable instructions include, for example,instructions and data which cause a general purpose computer, specialpurpose computer, or special purpose processing machines to perform acertain function or group of functions.

The phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. The use of“including” “comprising” “having” “containing” “involving”“characterized by” “characterized in that” and variations thereofherein, is meant to encompass the items listed thereafter, equivalentsthereof, and additional items, as well as alternate implementationsconsisting of the items listed thereafter exclusively. In oneimplementation, the systems and methods described herein consist of one,each combination of more than one, or all of the described elements,acts, or components.

Any references to implementations or elements or acts of the systems andmethods herein referred to in the singular can also embraceimplementations including a plurality of these elements, and anyreferences in plural to any implementation or element or act herein canalso embrace implementations including only a single element. Referencesin the singular or plural form are not intended to limit the presentlydisclosed systems or methods, their components, acts, or elements tosingle or plural configurations. References to any act or element beingbased on any information, act or element can include implementationswhere the act or element is based at least in part on any information,act, or element.

Any implementation disclosed herein can be combined with any otherimplementation or embodiment, and references to “an implementation,”“some implementations,” “one implementation” or the like are notnecessarily mutually exclusive and are intended to indicate that aparticular feature, structure, or characteristic described in connectionwith the implementation can be included in at least one implementationor embodiment. Such terms as used herein are not necessarily allreferring to the same implementation. Any implementation can be combinedwith any other implementation, inclusively or exclusively, in any mannerconsistent with the aspects and implementations disclosed herein.

Where technical features in the drawings, detailed description or anyclaim are followed by reference signs, the reference signs have beenincluded to increase the intelligibility of the drawings, detaileddescription, and claims. Accordingly, neither the reference signs northeir absence have any limiting effect on the scope of any claimelements.

Systems and methods described herein may be embodied in other specificforms without departing from the characteristics thereof. References to“approximately,” “about” “substantially” or other terms of degreeinclude variations of +/−10% from the given measurement, unit, or rangeunless explicitly indicated otherwise. Coupled elements can beelectrically, mechanically, or physically coupled with one anotherdirectly or with intervening elements. Scope of the systems and methodsdescribed herein is thus indicated by the appended claims, rather thanthe foregoing description, and changes that come within the meaning andrange of equivalency of the claims are embraced therein.

The term “coupled” and variations thereof includes the joining of twomembers directly or indirectly to one another. Such joining may bestationary (e.g., permanent or fixed) or moveable (e.g., removable orreleasable). Such joining may be achieved with the two members coupleddirectly with or to each other, with the two members coupled with eachother using a separate intervening member and any additionalintermediate members coupled with one another, or with the two memberscoupled with each other using an intervening member that is integrallyformed as a single unitary body with one of the two members. If“coupled” or variations thereof are modified by an additional term(e.g., directly coupled), the generic definition of “coupled” providedabove is modified by the plain language meaning of the additional term(e.g., “directly coupled” means the joining of two members without anyseparate intervening member), resulting in a narrower definition thanthe generic definition of “coupled” provided above. Such coupling may bemechanical, electrical, or fluidic.

References to “or” can be construed as inclusive so that any termsdescribed using “or” can indicate any of a single, more than one, andall of the described terms. A reference to “at least one of ‘A’ and ‘B’can include only ‘A’, only ‘B’, as well as both ‘A’ and ‘B’. Suchreferences used in conjunction with “comprising” or other openterminology can include additional items.

Modifications of described elements and acts such as variations insizes, dimensions, structures, shapes and proportions of the variouselements, values of parameters, mounting arrangements, use of materials,colors, orientations can occur without materially departing from theteachings and advantages of the subject matter disclosed herein. Forexample, elements shown as integrally formed can be constructed ofmultiple parts or elements, the position of elements can be reversed orotherwise varied, and the nature or number of discrete elements orpositions can be altered or varied. Other substitutions, modifications,changes and omissions can also be made in the design, operatingconditions and arrangement of the disclosed elements and operationswithout departing from the scope of the present disclosure.

References herein to the positions of elements (e.g., “top,” “bottom,”“above,” “below”) are merely used to describe the orientation of variouselements in the FIGURES. The orientation of various elements may differaccording to other exemplary embodiments, and that such variations areintended to be encompassed by the present disclosure.

The invention claimed is:
 1. A method, comprising: accessing, by arendering device of a user, a second content that is indicated asavailable when a first content is presented to the user via a firstdevice, after a user selection at the first device of an interfaceelement which indicates availability of the second content; anddetermining, by the rendering device, a time difference between a firsttime associated with the user selection and a second time associatedwith usage of the rendering device; and rendering, by the renderingdevice, the second content, the second content comprising at least oneof a three-dimensional (3D) video, 180° or 360° image or video, orvirtual reality (VR) content.
 2. The method of claim 1, comprising:rendering, by the rendering device, the second content responsive to atleast one of: selection of the second content via the VR renderingdevice, a period of user inactivity, or the time difference.
 3. Themethod of claim 1, wherein the interface element is provided to the userat the first device responsive to metadata of the first contentindicating the availability of the second content.
 4. The method ofclaim 1, comprising: accessing, by the rendering device, the secondcontent via a link established between a content library of the user andthe second content.
 5. The method of claim 1, comprising: accessing, bythe rendering device, the second content by retrieving the secondcontent stored in a content library of the user.
 6. The method of claim1, comprising: presenting, by the rendering device, a plurality ofcontent items including a content item for the second content, in a userinterface of the rendering device.
 7. The method of claim 1, comprising:accessing, by the rendering device, the second content by accessing anaccount of the user for the rendering device.
 8. The method of claim 1,wherein the first content is presented to the user via the first devicethrough at least one of: a social media channel, a software application,or a webpage.
 9. The method of claim 1, comprising: accessing, by therendering device, the second content via wirelessly streaming of thesecond content from the first device to the VR rendering device.
 10. Arendering device of a user, comprising: at least one processorsconfigured to: access a second content that is indicated as availablewhen a first content is presented to the user via a first device, aftera user selection at the first device of an interface element whichindicates availability of the second content; and determine a timedifference between a first time associated with the user selection and asecond time associated with usage of the rendering device; and renderthe second content, wherein the second content comprises at least one ofa three-dimensional (3D) video, 180° or 360° image or video, or virtualreality (VR) content.
 11. The rendering device of claim 10, wherein theat least one processors is configured to render the second contentresponsive to at least one of: selection of the second content via theVR rendering device, a period of user inactivity, or the timedifference.
 12. The rendering device of claim 10, wherein the interfaceelement is provided to the user at the first device responsive tometadata of the first content indicating the availability of the secondcontent.
 13. The rendering device of claim 10, wherein the at least oneprocessors is configured to access the second content via a linkestablished between a content library of the user and the secondcontent.
 14. The rendering device of claim 10, wherein the at least oneprocessors is configured to access the second content by retrieving thesecond content stored in a content library of the user.
 15. Therendering device of claim 10, wherein the at least one processors isconfigured to generate a plurality of content items including a contentitem for the second content, to present in a user interface of therendering device.
 16. The rendering device of claim 10, wherein the atleast one processors is configured to access the second content byaccessing an account of the user for the rendering device.
 17. Therendering device of claim 10, wherein the first content is presented tothe user via the first device through at least one of: a social mediachannel, a software application, or a webpage.
 18. The rendering deviceof claim 10, wherein the at least one processors is configured to accessthe second content via wirelessly streaming of the second content fromthe first device to the VR rendering device.
 19. A non-transitorycomputer readable medium storing instructions when executed by one ormore processors cause the one or more processors to: access a secondcontent that is indicated as available when a first content is presentedto the user via a first device, after a user selection at the firstdevice of an interface element which indicates availability of thesecond content; and determine a time difference between a first timeassociated with the user selection and a second time associated withusage of the rendering device; and render the second content, whereinthe second content comprises at least one of a three-dimensional (3D)video, 180° or 360° image or video, or virtual reality (VR) content. 20.The non-transitory computer readable medium of claim 19, furthercomprising instructions when executed by the one or more processorsfurther cause the one or more processors to: render the second contentresponsive to at least one of: selection of the second content via theVR rendering device, a period of user inactivity, or the timedifference.